package com.hgy.plugin.security;

import java.util.Set;

/**
 * Smart Security 接口
 *  <br/>
 * 可在应用中实现该接口, 或者在 smart.properties 文件中提供一下基于 SQL 的配置项
 * <ul>
 * <li>smart.plugin.security.jdbc.authoc_query : 根据用户名查询用户密码</li>
 * <li>smart.plugin.security.jdbc.roles_query : 根据用户名获取角色集合</li>
 * <li>smart.plugin.security.jdbc.permission_query : 根据角色名获取权限集合</li>
 * </ul>
 * 
 * @author alone
 *
 */
public interface SmartSecurity {
	
	/**
	 * 根据用户名查询用户密码
	 * 
	 * @param username
	 * @return
	 */
	String getPassword(String username);
	
	/**
	 * 根据用户名获取角色集合
	 * 
	 * @param username
	 * @return
	 */
	Set<String> getRoleNameSet(String username);
	
	/**
	 * 根据角色名获取权限集合
	 * @param roleName
	 * @return
	 */
	Set<String> getPermissionNameSet(String roleName);
}
